import type { Directive, DirectiveBinding } from "vue";
import { useUserStore } from "@/store";

const hasNoPermission = (value: string) => {
    return useUserStore().currentUser?.permissions.indexOf(value) === -1;
};

export const permissionDirective: Directive = {
    // 可以实现四个钩子

    // el当前的元素， 绑定的值 ： value， oldvalue，：现在直接解构
    mounted(el: Element, { value }: DirectiveBinding) {
        // 如果当前没有值的适合，删除元素
        hasNoPermission(value) && el.parentNode?.removeChild(el);
    },
};